Definition:

Client-side and server-side are web concepts that define where application code runs. Most of the internet is based on a client/server model. In this model, clients communicate through a network with centrally located servers to get the data they need, rather than having to communicate directly between the two computers. Clients sends requests to servers for what web pages or applications they would like to see, and servers responds to the clients.

The image to the right visually represents how servers and clients communicate, showing that servers and clients have a many to many relationship. This means that while a communication path can exist between only one server and one client, each server and each client can have many communication paths that connect them to more than one device.

Now that we know how client-server communication works, we will go more in depth into client-side engineering and server-side engineering.

Client and Server-side depiction

Client-side engineering

Client-side development, sometimes referred to as front-end development, is a type of development that involves programs that run on a client's or user's device. Client-side developers focus on creating the part of a website with which the user interacts.

The responsibilities of a client-side engineer includes the following

Server-side engineering

Server-side web programming use coding languages to manage data exchange between servers and clients. Server-side engineering decide and code what information should be displayed and how to calculate that information while client-side engineering refers to how that information should be displayed. Server-side engineering is also responsible for how user’s data should be captured and for keeping user data secure and trusted. Server-side engineers thus have to create applications containing useful information that can be displayed or applications that capture useful information to be used as input for something, for example buying a product.

The responsibilities of a client-side engineer includes the following

Notable differences between client- and server-side engineering

Element Client-Side Server-Side
Location Runs on the user’s device (browser) Runs on a remote server
Functionality Handles user interaction Handles server and data interactions
Security Vulnerable to XSS, CSRF, and injection attacks Vulnerable to injection attacks, broken authentication and session management, and DoS attacks
Software Uses HTML, CSS, JavaScript, jQuery, React, Angular, Vue.js, and Bootstrap Uses PHP, Python, Ruby, Node.js, ASP.NET, Ruby on Rails, Django, and Express.js
Performance Depends on context. Code can be faster as it runs directly in the user’s web browser Depends on context. Can handle heavy traffic and complex operations hence faster



References

History computer staff, Aug 13 2023, History Computer. Client-Side vs Server-Side: What’s the Difference?


Cloudflare,undated. Client-Side vs Server-Side: What’s the Difference?


Denise Castilo, June 15, 2022, Lytic. Client-side vs Server side: Everything you need to know.